Vehicle systems are typically controlled by one or more electronic control units (ECUs) or electronic control modules. Each ECU comprises software that is updated from time to time for various purposes including providing corrections, improvements and enhancements. The software is typically stored in a flash memory.
Typically such updates are installed by the vehicle owner bringing the vehicle to a dealer or service center for update installation, often in response to receiving a notification from the vehicle manufacturer. The costs for providing and installing updates are passed on from the dealer to the vehicle manufacturer. Those costs are a significant expense for vehicle manufacturers when the updates are performed at vehicle dealerships. In addition, the vehicle owner is inconvenienced by having to bring the vehicle to the dealer and spending time at the dealer to have the updates installed. Still further, vehicle owners may not receive the update notices or may decide not to have the updates added because of the inconvenience.
Over-the-Air (OTA) programming, also called Firmware Over-the-Air (FOTA) is a procedure of remotely updating software that has previously been utilized in the telecommunications industry for mobile wireless devices such as cellular phones, personal digital assistants and the like. However, in the automotive industry, FOTA has had limited use.
An established procedure of ECU reprogramming utilizes a wired connection and a diagnostic tool. The wired connection is direct between the diagnostic tool and a vehicle gateway.
Modern vehicle diagnostic systems are configured to execute XML scripts. This approach is standardized and utilizes an output script compiled in a script language, in particular in Open Test sequence data eXchange (OTX). Additionally, a standardized description language, i.e., Open Diagnostic Data Exchange (ODX) that provides fundamental information for software configuration is utilized. ODX is standardized in international standard ISO 22901-1.
ODX and OTX files are stored as XML files and could occupy several Mbytes of memory. A typical diagnostics tool integrates an XML interpreter of the ODX/OTX protocols and sends the instructions to a vehicle gateway.
It is possible to provide vehicles with a vehicle gateway that runs powerful operating systems such as Linux than can integrate an XML interpreter, as done in garage diagnostics tools. However, these modules require large FLASH and RAM memories and have a very high cost. The cost is prohibitive for low-end vehicles.
It is therefore desirable to have a system and method to perform the OTA vehicle programming with limited hardware resources, both in terms of FLASH and RAM memories and CPU throughput.